home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / libdl / dlclose.z / dlclose
Encoding:
Text File  |  1998-10-30  |  5.6 KB  |  133 lines

  1.  
  2.  
  3.  
  4. DDDDLLLLCCCCLLLLOOOOSSSSEEEE((((3333CCCC))))                                                        DDDDLLLLCCCCLLLLOOOOSSSSEEEE((((3333CCCC))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ddddllllcccclllloooosssseeee - close a shared object
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      cccccccc [ffffllllaaaagggg ...] ffffiiiilllleeee ...  ----llllcccc [lllliiiibbbbrrrraaaarrrryyyy ...]
  13.  
  14.      ####iiiinnnncccclllluuuuddddeeee <<<<ddddllllffffccccnnnn....hhhh>>>>
  15.  
  16.      iiiinnnntttt ddddllllcccclllloooosssseeee((((vvvvooooiiiidddd ****hhhhaaaannnnddddlllleeee))));;;;
  17.  
  18. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  19.      ddddllllcccclllloooosssseeee disassociates a shared object previously opened by ddddllllooooppppeeeennnn,
  20.      ssssggggiiiiddddllllaaaadddddddd, or ssssggggiiiiddddllllooooppppeeeennnn____vvvveeeerrrrssssiiiioooonnnn from the current process. Once an object
  21.      has been closed using ddddllllcccclllloooosssseeee, its symbols are no longer available to
  22.      ddddllllssssyyyymmmm or to the program.  All objects loaded automatically as a result of
  23.      invoking ddddllllooooppppeeeennnn, on the referenced object [see ddddllllooooppppeeeennnn(3) ssssggggiiiiddddllllaaaadddddddd, or
  24.      ssssggggiiiiddddllllooooppppeeeennnn____vvvveeeerrrrssssiiiioooonnnn] are also closed (however no object still open via any
  25.      ddddllllooooppppeeeennnn, ssssggggiiiiddddllllaaaadddddddd, or ssssggggiiiiddddllllooooppppeeeennnn____vvvveeeerrrrssssiiiioooonnnn is closed till the last open
  26.      _h_a_n_d_l_e is ddddllllcccclllloooosssseeeed).
  27.  
  28.      _h_a_n_d_l_e is the value returned by a previous invocation of ddddllllooooppppeeeennnn.
  29.  
  30. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  31.      ddddlllleeeerrrrrrrroooorrrr(3), ddddllllooooppppeeeennnn(3), ssssggggiiiiddddllllooooppppeeeennnn____vvvveeeerrrrssssiiiioooonnnn(3), ssssggggiiiiddddllllaaaadddddddd(3), ddddllllssssyyyymmmm(3),
  32.      ddddssssoooo(5).
  33.  
  34. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  35.      If the referenced object was successfully closed, ddddllllcccclllloooosssseeee returns 0. If
  36.      the object could not be closed, or if _h_a_n_d_l_e does not refer to an open
  37.      object, ddddllllcccclllloooosssseeee returns a non-0 value.  More detailed diagnostic
  38.      information is available through ddddlllleeeerrrrrrrroooorrrr.
  39.  
  40. NNNNOOOOTTTTEEEESSSS
  41.      A successful invocation of ddddllllcccclllloooosssseeee does not guarantee that the objects
  42.      associated with _h_a_n_d_l_e are actually removed from the address space of the
  43.      process.  Objects loaded by one invocation of ddddllllooooppppeeeennnn may also be loaded
  44.      by another invocation of ddddllllooooppppeeeennnn.  The same object may also be opened
  45.      multiple times.  An object is not removed from the address space until
  46.      all references to that object through an explicit ddddllllooooppppeeeennnn invocation have
  47.      been closed and all other objects implicitly referencing that object have
  48.      also been closed.
  49.  
  50.      Once an object has been closed by ddddllllcccclllloooosssseeee, referencing symbols contained
  51.      in that object can cause undefined behavior.
  52.  
  53.      Use of ddddllllcccclllloooosssseeee on a DSO can cause surprising side effects because ddddllllcccclllloooosssseeee
  54.      forces many symbol's GOT entries to be reset for re-lazy-evaluation.  A
  55.      result of this is that previously-saved (by the program or a DSO)
  56.      function pointers may hold obsolete or incorrect values.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDLLLLCCCCLLLLOOOOSSSSEEEE((((3333CCCC))))                                                        DDDDLLLLCCCCLLLLOOOOSSSSEEEE((((3333CCCC))))
  71.  
  72.  
  73.  
  74.      Symbol lookups proceed in order on a linear list, and a DSO is not opened
  75.      twice with the same version number (unless different dlopen paths make
  76.      the DSO name appear different to _r_l_d).  When multiple ssssggggiiiiddddllllaaaadddddddds are done
  77.      and an earlier DSO is ddddllllcccclllloooosssseeeed this can change what symbol a call is
  78.      resolved to and even result in unintentionally calling different routines
  79.      (with the same name) from a single place in the program at different
  80.      times.  See the discussion of this in the ddddllllooooppppeeeennnn description under
  81.      "NAMESPACE ISSUES".
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.